$().ready(function(){
   
   if ( namespace.opcion == "null" ){
       $('.index_loginContainer').html("<h1>Bienvenido. <br/> No hay lista compartida seleccionada</h1>");
       return;
   }
   
   $('.crearLista_Agregar').click(function(){
        agregarModificarLinea(true);
    });
    
});

function login(){
    namespace.login = { "lista":namespace.opcion,"password":$('#password').val() };        
    $.ajax({
              type: 'POST',
              url: 'php/MainController.php?accion=getListaCompartida',
              data: namespace.login,
              dataType: 'json',
              success: responseLogin
            });    
}

function responseLogin(data,a,b){
    $('.index_errores').html("").hide();
    if ( data.success != undefined ){
        $('.index_errores').text(data.msj).show();
        return;
    }else{
        namespace.lista = data;
        $('.index_loginContainer').hide();
        $('.crearLista_formulario').show();
        $('.lista_nombre').text("Lista: "+namespace.lista.nombre);
        traerYMostrarLista();
    } 
}

function traerYMostrarLista(){
    var laLista = namespace.lista;
    $.each(laLista.lineas,function(i, value){
        $('#descripcion').val(value.articulo.nombre);
        $('#cantidad').val(value.cantidad);
        agregarModificarLinea(false);
    });
    $('#nombre').val(namespace.lista.nombre);
    $('.listasAnteriores').fadeOut();
    $('.crearLista_formulario').fadeIn();
}

function agregarModificarLinea(modificarArray){
    $('.index_errores').hide();
    var validacion_error = "Verifique la descripcion y la cantidad.";
    
    var descripcion = $('#descripcion').val();
    var cantidad    = $('#cantidad').val();
    
    if ( esCadenaVacia(descripcion) || !esNumeroPositivo(cantidad) ){
        $('.index_errores').text(validacion_error).fadeIn();
        return;
    }
    
    var elementoEncontrado = null;
    
    $('.articulo_contenedor').each(function(){
        if ( $(this).find(".articulo_descripcion").text() == descripcion ){            
            elementoEncontrado = $(this);
            return;
        }
    })
    
    if ( elementoEncontrado != null ){
        //la linea ya existe
        elementoEncontrado.find(".articulo_cantidad").text(cantidad);
        if ( modificarArray == true ) actualizarLineaEnArray(descripcion,cantidad);
    }else{
        //nueva linea
        if ( modificarArray == true ) agregarLineaEnArray(descripcion,cantidad);
        var elDiv = "<div class=\"articulo_contenedor\">"+
                    "<div class=\"articulo_descripcion\">"+descripcion+"</div>"+
                    "<div class=\"articulo_cantidad\">"+cantidad+"</div>"+
                    "<div class=\"articulo_opciones\"><a href=\"#\" class=\"articulo_modificar\"> Modificar </a> &nbsp; | &nbsp; <a href=\"#\" class=\"articulo_eliminar\"> Eliminar </a></div>";
        $('.crearLista_articulos').append(elDiv)
        .find('.articulo_opciones .articulo_modificar')
        .click(function(){
            $('#descripcion').val( $(this).parent().parent().find('.articulo_descripcion').text() );
            $('#cantidad').val( $(this).parent().parent().find('.articulo_cantidad').text() );
            return false;
        })
        .parent().find('.articulo_eliminar').click(function(){
                //mando a eliminar del array de lineas
                eliminarLineaDeArray($(this).parent().parent().find('.articulo_descripcion').text());                
                $(this).parent().parent().remove();
                limpiarInputsArticulos();                       
                return false;
        })
    }    
    limpiarInputsArticulos();   
}

function limpiarInputsArticulos(){
    $('#descripcion').val("");
    $('#cantidad').val("");
}

function crearLista(){
    $.ajax({
              type: 'POST',
              url: 'php/MainController.php?accion=guardarListaCompra',
              data: namespace.lista,
              dataType: 'json',
              success: responseGuardarListaCompra
         });    
}

function responseGuardarListaCompra(data,a,b){
    if ( data.success == "false" || data.success == false ){
        alert ( "Error \n"+data.msj );
        return;
    }
    //limpio la lista
    namespace.lista = new ListaCompra();
    $('.crearLista_articulos').html("");
    $('.crearLista_formulario').hide();
    $('.index_loginContainer').show();
    $('#password').val("");
        
    alert ( "Lista guardada con exito." );    
}